import request from '@/utils/request'

/**
 * 获取消息列表
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.limit - 每页数量
 * @param {string} [params.title] - 消息标题
 * @param {number} [params.type] - 消息类型
 * @param {number} [params.readStatus] - 阅读状态(0:未读,1:已读)
 * @param {Date} [params.beginTime] - 开始时间
 * @param {Date} [params.endTime] - 结束时间
 * @returns {Promise} 返回消息列表数据
 */
export function getMessageList(params) {
  return request({
    url: '/api/message/list',
    method: 'get',
    params
  })
}

/**
 * 获取消息详情
 * @param {number} id - 消息ID
 * @returns {Promise} 返回消息详情数据
 */
export function getMessageDetail(id) {
  return request({
    url: `/api/message/${id}`,
    method: 'get'
  })
}

/**
 * 创建新消息
 * @param {Object} data - 消息数据
 * @param {string} data.title - 消息标题
 * @param {string} data.content - 消息内容
 * @param {number} data.type - 消息类型
 * @param {number} data.receiverType - 接收者类型(1:全部用户,2:指定用户,3:指定部门,4:指定角色)
 * @param {Array} [data.receiverIds] - 接收者ID数组
 * @returns {Promise} 返回创建结果
 */
export function createMessage(data) {
  return request({
    url: '/api/message',
    method: 'post',
    data
  })
}

/**
 * 删除消息
 * @param {number} id - 消息ID
 * @returns {Promise} 返回删除结果
 */
export function deleteMessage(id) {
  return request({
    url: `/api/message/${id}`,
    method: 'delete'
  })
}

/**
 * 批量删除消息
 * @param {Array} ids - 消息ID数组
 * @returns {Promise} 返回批量删除结果
 */
export function batchDeleteMessages(ids) {
  return request({
    url: '/api/message/batch',
    method: 'delete',
    data: { ids }
  })
}

/**
 * 标记消息为已读
 * @param {number} id - 消息ID
 * @returns {Promise} 返回标记结果
 */
export function markMessageRead(id) {
  return request({
    url: `/api/message/read/${id}`,
    method: 'put'
  })
}

/**
 * 标记所有消息为已读
 * @returns {Promise} 返回标记结果
 */
export function markAllMessagesRead() {
  return request({
    url: '/api/message/read/all',
    method: 'put'
  })
}

/**
 * 获取未读消息数量
 * @returns {Promise} 返回未读消息数量
 */
export function getUnreadMessageCount() {
  return request({
    url: '/api/message/unread/count',
    method: 'get'
  })
} 